package com.wx.chapter13.homework;

/**
 * @Author : 佩萁
 * Description :
 * @Create : 2023/7/25 - 16:35
 */
public class HomeWork01 {
    public static void main(String[] args) {
        try {
            String str = "abcdef";
            str = reverse(str, 0, 4);
            System.out.println(str);
        } catch (Exception e) {
            System.out.println(e.getMessage());//获得异常信息
            return;
        }
    }

    /**
     * (1) 将字符串中指定部分进行反转。比如将"abcdef"反转为"aedcbf"
     * (2) 编写方法 public static String reverse(String  str, int start , int end) 搞定
     * 思路分析
     * (1) 先把方法定义确定
     * (2) 把 String 转成 char[] ，因为char[] 的元素是可以交换的
     * (3) 画出分析示意图
     * (4) 代码实现
     */
    public static String reverse(String str, int start, int end) {
        //正难则反，想出成立的条件，然后最后取反
        if (!(str != null && start < end && start >= 0 && end < str.length())) {
            throw new RuntimeException("参数错误");
        }
        char[] chars = str.toCharArray();//将字符串转化为字符串数组
        char temp = ' ';//中间转化变量
        for (int i = start, j = end; i < j; i++, j--) {
            temp = chars[i];
            chars[i] = chars[j];
            chars[j] = temp;
        }
        return new String(chars);//将字符串数组转化为字符串
    }
}
